package com.idp.system.service;

import com.idp.common.model.PageModel;
import com.idp.system.dto.SysUserDto;
import com.idp.system.dto.SysUserSearchDto;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 用户Service接口
 * @author king
 */
public interface SysUserService {

	/**
	 * 分页查询
	 * @param sysUserSearchDto
	 * @return
	 */
	PageModel<SysUserDto> findByPage(SysUserSearchDto sysUserSearchDto);

	/**
	 * 通过id查询
	 * @param id
	 * @return
	 */
	SysUserDto getById(String id);

	/**
	 * 新增
	 * @param sysUserDto
	 */
	void add(SysUserDto sysUserDto);

	/**
	 * 修改
	 * @param sysUserDto
	 */
	void update(SysUserDto sysUserDto);

	/**
	 * 删除
	 * @param id
	 */
	void delete(String id);

	/**
	 * 重置密码
	 * @param id
	 * @return
	 */
	void resetPwd(String id);

	/**
	 * 修改密码
	 * @param userId
	 * @param oldPwd
	 * @param newPwd
	 */
	void updatePwd(String userId, String oldPwd, String newPwd);

	/**
	 * 查询有效的用户
	 * @return
	 */
	List<SysUserDto> findValidUsers();

	/**
	 * 导出用户信息
	 * @param sysUserSearchDto
	 * @param response
	 */
	void exportExcel(SysUserSearchDto sysUserSearchDto, HttpServletResponse response);

	/**
	 * 导入用户信息
	 * @param file
	 */
	void importExcel(MultipartFile file);
}
